Erstellen eines Layoutregelwerks
XML-Editor
Durch die Benutzung von Standard XML (UTF-8) lässt sich das Layoutregelwerk mit jedem Texteditor bearbeiten.
Mithilfe der mitgelieferten XML Schemata (RELAX NG und XML Schema (XSD)) wird die Eingabe des Layoutregelwerks deutlich erleichtert. So ein Schema kann man sich als computerlesbare Anleitung vorstellen, welche Befehle an welcher Stelle im Layout erscheinen dürfen. Die Anleitung enthält auch Informationen über die jeweils erlaubten Parameter. Zusätzlich gibt das Schema auch Hilfe, in dem jeder Befehl und Parameter kurz erläutert wird. Kurzum: wenn der Editor dieses Schema einbinden kann und auch »versteht«, ist das eine nicht zu unterschätzende Eingabehilfe. Man verringert die Fehlerzahl und die Eingabezeit deutlich, das Bearbeiten des Layoutregelwerks fängt dann an, richtig Spaß zu machen (glauben Sie mir).
Um dieses Schema einzubinden, muss ein passender XML-Editor benutzt werden, der RELAX NG oder XML-Schemata verarbeiten kann, z. B.:
- OxygenXML (Mac, Windows, Linux)
- Visual Studio Code (Mac, Windows, Linux, kostenlos)
Die ersten beiden Editoren bieten hervorragende Cross-Plattform Unterstützung für die Schema.
- XMLSpy (Windows)
- XML Blueprint (Windows)
- GNU Emacs mit nxml-mode (alle Betriebssysteme, kostenlos)
- jEdit (Mac, Windows, Linux, kostenlos)
Die Schemadateien für das Layoutregelwerk liegen in der ZIP-Datei im Verzeichnis share/schema/
unter den Dateinamen
layoutschema-de.rng
layoutschema-en.rng
für RELAX NG und
layoutschema-de.xsd
layoutschema-en.xsd
für XSD, je nach gewünschter Sprache der Dokumentation. Weitere Informationen zum Schema gibt es im Kapitel Schemavalidierung und im Anhang Installationsanleitungen für verschiedene Editoren (z.B. oXygen, Visual Studio Code).
Namensraum des Layoutregelwerks
Der XML-Namensraum des Layoutregelwerks ist urn:speedata.de:2009/publisher/en
.
Die zusätzlichen XPath-Funktionen liegen im Namensraum urn:speedata:2009/publisher/functions/en
.
Daher sollte ein Layoutregelwerk immer diesen Rahmen haben:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
...
</Layout>
Dann lassen sich die speedata-eigenen Funktionen mit dem Präfix sd:
aufrufen, zum Beispiel: sd:current-page()
um die aktuelle Seitenzahl zu ermitteln.